package morenoapp.model.data;

import com.jgoodies.binding.beans.Observable;
import morenoapp.model.listeners.MorenoModelListener;
import morenoapp.model.meta.MethodRedirect;
import morenoapp.model.meta.NoModelIsOK;
import morenoapp.model.view2.MorenoView2Face;

/**
 * Модель данных социометрического исследования мо методу Дж. Морено.
 *
 * @author dmitry.mamonov
 */
public interface MorenoModelFace extends MorenoModelData, Observable {
    @MethodRedirect("addModelListenerImpl(_value)")
    @NoModelIsOK
    void addModelListener(MorenoModelListener lst);

    @MethodRedirect("removeModelListenerImpl(_value)")
    @NoModelIsOK
    void removeModelListener(MorenoModelListener lst);

    @MethodRedirect("return getViewImpl()")
    @NoModelIsOK
    MorenoView2Face getView();

    /**
     * Очистить всю модель.
     */
    @MethodRedirect("closeModelImpl()")
    void closeModel();

    /**
     * Создаёт ноый экземпляр модели.
     */
    @MethodRedirect("createModelImpl()")
    @NoModelIsOK
    void createModel();
    
}
